\documentclass{report}

\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[francais]{babel}
\usepackage{amsfonts} %permet d'utiliser mathbb
\usepackage{amsthm} %permet d'utiliser \newtheorem*
 \usepackage{amsmath} %permet d'utiliser les matrices
\usepackage[colorlinks=true,linkcolor=black]{hyperref}
\usepackage{listings}
\usepackage{url}

\lstset {language = Python,
	numbers = left,
	showspaces = false,
	tabsize = 2,
	showstringspaces = false
	}

\title{Codes correcteurs et cryptosystème de Mc Eliece}
\author{Auclair Pierre}

\newtheorem{defi}{Définition}
\newtheorem{prop}{Propriété}
\newtheorem{algo}{Algorithme}
\newtheorem{pb}{Problème}

\begin{document}
	\maketitle
	\tableofcontents

	\chapter*{Introduction}
	De nos jours, l'un des rôles principaux de l'informatique est la communication, aussi bien entre particuliers sur le réseau internet qu'au niveau de l’ingénierie militaire et spatiale.
	Néanmoins aucun des canaux utilisés pour transmettre l'information n'est sur à 100\% et des erreurs se produisent avec une probabilité non négligeable.
	C'est pourquoi une nouvelle branche de l'informatique : la théorie des codes, a émergée dans les années 1950 concevant des codes permettant de détecter et même de corriger les erreurs induites par les canaux de transmission.

	Un exemple plus familier d'un tel code est le langage humain, celui-ci utilise deux procédés réutilisés par les codes plus informatiques.
	Tout d'abord, la répétition : lorsqu'on discute, tous les mots de la phrase ne sont pas nécessaires pour rendre compte de son sens.
	Il y a donc des informations redondantes dans la phrase, et on pourrait transposer cela en informatique en décidant d'envoyer plusieurs fois le même message.
	Ce n'est cependant pas la méthode utilisée à cause de son coût.
	Un autre procédé est celui de la distinguabilité des mots entre eux. 
	Deux mots possèdes en général assez de syllabes différentes pour que même mal prononcés on puisse les distinguer.
	C'est plutôt ce procédé de séparer les mots les uns des autres qui est utilisé en informatique et que nous formaliserons.

	Dans ce rapport nous nous intéresserons principalement aux codes de Goppa et à une de leurs applications en cryptographie dans le cryptosystème de Mc Eliece.

	\include{Codes}

	\include{Goppa}

	\include{Mceliece}

	\include{algorithmes}

	\include{Implementation}

\bibliographystyle{alpha}
\bibliography{ref}
\end{document}
